System and method for trail identification with search results

ABSTRACT

A system and method are disclosed for identifying and generating a potential user trail. The trail may be an anticipated browsing path for a user based on current and/or historical browsing data, including search logs, browsing histories, and other data. The trail may be displayed as a search result summary or with individual search results in response to receiving a search query.

PRIORITY STATEMENT

This application claims the benefit of U.S. patent application Ser. No.12/103,527, filed on Apr. 15, 2008, the disclosure of which isincorporated herein in its entirety by reference.

BACKGROUND

Online searching and advertising may be an important source of revenuefor enterprises engaged in electronic commerce. Processes associatedwith technologies such as Hypertext Markup Language (HTML) and HypertextTransfer Protocol (HTTP) enable a web page to be configured to displaysearch results and/or advertisements. Online searching is a way forconsumers to locate information, goods, or services on the Internet. Aconsumer may use an online search engine to type in one or more keywords(also referred to as a search term or search query) to search for pagesor web sites with information related to the keyword(s). The searchresults that are shown on the search engine page include links to pagesor sites with content that is related to the keyword(s). The searchresults that are provided to a user may or may not include theinformation that the user is searching for. Because online advertisingmay be influenced by the ability of a search engine to provide the mostrelevant results, the search engine may attempt to provide a user withthe information and pages that are most relevant to that user based onthe query.

BRIEF DESCRIPTION OF THE DRAWINGS

The system and method may be better understood with reference to thefollowing drawings and description. Non-limiting and non-exhaustiveembodiments are described with reference to the following drawings. Thecomponents in the drawings are not necessarily to scale, emphasisinstead being placed upon illustrating the principles of the invention.In the drawings, like referenced numerals designate corresponding partsthroughout the different views.

FIG. 1 is a diagram of an exemplary network system;

FIG. 2 is an illustration of an exemplary browsing trail;

FIG. 3 is a diagram of a trail generator;

FIG. 4 is a diagram of exemplary trail identification factors;

FIG. 5 is an exemplary search screen;

FIG. 6 is a process for identifying a trail;

FIG. 7 is another exemplary search screen; and

FIG. 8 is a process for producing a trail with multiple links.

DETAILED DESCRIPTION

By way of introduction, a system and method for identifying andgenerating a potential user trail is described. The trail may be ananticipated browsing path for a user based on a search query, e.g. asuggested or anticipated sequence of links or URL's which the user mayselect, in order, to view a sequence of associated web pages. The trailmay also be determined based on current and/or historical browsing dataincluding search logs, browsing histories, and other data. The trail maybe displayed as a search result summary and/or in association withindividual search results in response to receiving a search query. Othersystems, methods, features and advantages will be, or will become,apparent to one with skill in the art upon examination of the followingfigures and detailed description. It is intended that all suchadditional systems, methods, features and advantages be included withinthis description, be within the scope of the invention, and be protectedby the following claims. Nothing in this section should be taken as alimitation on those claims. Further aspects and advantages are discussedbelow.

FIG. 1 provides a simplified view of a network system 100 in which thepresent system and methods may be implemented. Not all of the depictedcomponents may be required, however, and some systems may includeadditional, different, or fewer components not shown in the figure maybe provided. Variations in the arrangement and type of the componentsmay be made without departing from the spirit or scope of the claims asset forth herein.

FIG. 1 is a block diagram illustrating an exemplary network system 100for trail identification and analysis. In particular, system 100includes a trail generator 112 that may receive a search query from asearch engine 106 and generate a trail for that search query based ondata from a search log database 108 and/or toolbar log database 110. Aclient device 102 is coupled with the search engine 106 through thenetwork 104 for requesting a search query. The search engine 106 iscoupled with the search log database 108, the toolbar log database 110,and/or the trail generator 112. Herein, the phrase “coupled with” maymean directly connected to or indirectly connected through one or moreintermediate components. Such intermediate components may include bothhardware and software based components. Variations in the arrangementand type of the components may be made without departing from the spiritor scope of the claims as set forth herein.

The client device 102 may be a computing device which allows a user toconnect to the network 104, such as the Internet. Examples of a userdevice include but are not limited to a personal computer, personaldigital assistant (“PDA”), cellular phone, or other wired or wirelesselectronic device. The client device 102 may be configured to accessother data/information, in addition to web pages, over the network 104with a web browser, such as INTERNET EXPLORER or FIREFOX. The clientdevice 102 may enable a user to view pages over the network 104, such asthe Internet.

The client device 102 may be configured to allow a user to interact withthe search engine 106, trail generator 112, or other components of thesystem 100. The client device 102 may receive and display a site or pageprovided by the search engine 106, such as a search page or a pageincluding search results. The client device 102 may include a keyboard,keypad or a cursor control device, such as a mouse, or a joystick, touchscreen display, remote control or any other device operative to allow auser to interact with the page(s) provided by the search engine 106.

The search engine 106 is coupled with the client device 102 through thenetwork 104, as well as being coupled with the trail generator 112,search log database 108, and/or the toolbar log database 110. The searchengine 106 may be a web server or provided thereby. The search engine106 may provide a site or a page which is available over a network, suchas the network 104 or the Internet. A site or page may refer to a webpage or web pages that may be received or viewed over a network. Thesite or page is not limited to a web page, and may include anyinformation accessible over a network that may be displayed at theclient device 102. A site may refer to a series of pages which arelinked by a site map or otherwise associated. For example, the web siteof www.yahoo.com (operated by Yahoo! Inc., in Sunnyvale, Calif.) mayinclude thousands of pages, which are included at yahoo.com.Hereinafter, a page will be described as a web page, a web site, or anyother site/page accessible over a network. A user of the client device102 may access a page provided by the search engine 106 over the network104. As described below, the page provided by the search engine 106 maybe a search page operable to receive a search query from the clientdevice 102 and causes the provision of search results that are based onthe received search query, such as via one or more search result pages,and may further cause the provision of advertisements associated withthe search query.

The search engine 106 may include an interface, such as a web page,e.g., the web page which may be accessed on the World Wide Web atyahoo.com, which is used to search for other pages which are accessiblevia the network 104. The client device 102, autonomously or at thedirection of the user, may input a search query (also referred to as auser query, original query, search term or a search keyword) to thesearch engine 106 via the interface. A single search query may includemultiple words or phrases. The search engine 106 may perform a searchfor the search query and display the results of the search on the clientdevice 102. The results of a search may include a listing of relatedpages or sites that is provided by the search engine 106 in response toreceiving the search query.

In an alternative system, an ad server (not shown) may be coupled withthe search engine 106 and/or the trail generator 112. The ad server maybe configured to provide advertisements to the search engine 106.Alternatively, the search engine 106 and the ad server may be a commoncomponent and/or the search engine 106 may select and provideadvertisements. The ad server may include or be coupled with anadvertisement database that includes advertisements that are availableto be displayed by the search engine 106 for sponsored searching. Inaddition, the advertisements may be associated with one or more searchkeywords or queries. The search keywords may be purchased or bid on byadvertisers. Accordingly, when that search keyword or a related query issearched for, the advertisers who placed bids are placed in competitionfor display of their advertisements. The rank order of theadvertisements may be determined by various factors, some of which mayinclude the quality of the ad as well as the amount the advertiserbidded.

The search log database 108 includes records or logs of at least asubset of the search queries entered in the search engine 106 over aperiod of time and may also be referred to as a search query log, searchterm database, keyword database or query database. The search logdatabase 108 may store the search keywords that are used by the adserver 108 in selecting an advertisement for a particular search query.The search log database 108 may include search queries from any numberof users over any period of time. The queries stored in the search logdatabase 108 may include relevant browsing trails that are associatedwith the queries.

FIG. 2 is an exemplary browsing trail 200. The browsing trail 200 mayinclude a sequence of pages or web sites that a user may follow. Thetrail may also be referred to as a path or track and may include a listof items that a user views or selects. The items may be pages, such asweb pages that a user views or may refer to particular products,services, or advertisements that are identified in the trail.Alternatively, the trail may include pages that identify the products,services, or advertisements. The trail may include a list of universalresource locators (URL) of pages that the user has visited insuccession. Each item in the list may be linked by a previous item inthe list. The list of items may be referred to as bread crumbs. Breadcrumbs may provide links back to each previous page that the usernavigated through in order to get to the current page, which forhierarchical structures may be the parent pages of the current page.Bread crumbs may provide a trail for a user to follow back to astarting/entry point of a website.

The trail 200 may originate with a search query and the trail is arecord or list of destinations that a user may take following thesearch. In block 202, a search query is received and a search resultpage is displayed that includes at least one search result. The searchresult page and/or individual search results may include links on thosepages that users may select. For example, a particular ad that isdisplayed with the search results may be popular and may be an item thatis selected within a browsing trail. Alternatively, a selection of oneof the search results from the search result page may be a first item ina trail as in block 204. From that page, there may be additional linksto a second page that may represent the next item in a trail as in block206. Likewise, there may be additional links to a third page that mayrepresent the next item in a trail as in block 208. The trail mayinclude a list of pages that the user has clicked on that may include nitems as in block 210. Alternatively, the additional links (second page)may not be linked from the first page.

The trail may include a potential browsing session of a user and thepages that the user may view. A browsing session may include multipletrails. For example, the user may have a trail that includes searchingfor and reviewing digital cameras. That user may also have another trailthat includes searching for and selecting tickets for a baseball game.The trail may begin with a received search query and a subsequent searchresults page as in FIG. 2. The pages that a user views related to thatquery may be considered as a trail for that query. As described, a trailmay be identified and predicted for a user based on a received query andadditional data or factors.

The toolbar log database 110 includes records or logs of at least asubset of the browsing history of one or more users over a period oftime and may also be referred to as a toolbar log, browsing database, orbrowsing log. The client device 102 may include a tracking or monitoringmechanism that records a browsing history of the user of the clientdevice 102. In one system, the tracking/monitoring mechanism may be asearch toolbar that is installed with a web browser on the client device102. The toolbar may allow a user to opt-in to provide usage statisticsthat may be stored in the toolbar log database 110. The usage statisticsmay include a search history and a browsing history. The statistics mayinclude trails that the user has explored an may be used to identifycommon trails that a user may perform. In one example, the trail that auser follows after submitting a query may be recorded in the toolbar logdatabase 110.

The search log database 108 or the toolbar log database 110 may also becoupled with a unit dictionary (not shown). The unit dictionary may be adatabase of user queries or search keywords that are coupled with oneanother as units. Units may also be referred to as concepts or topicsand are sequences of one or more words that appear in search queries.For example, the search query “New York City law enforcement” mayinclude two units, e.g. “New York City” may be one unit and “lawenforcement” may be another unit. A unit is a phrase of common wordsthat identify a single concept. As another example, the search query“Chicago art museums” may include two units, e.g. “Chicago” and “artmuseums.” The “Chicago” unit is a single word, and “art museums” is atwo-word unit. Units identify common groups of keywords to maximize theefficiency and relevance of search results. The unit dictionary and thecategorization of search queries into units may be used to analyzequeries received by the search engine 106. A search query may be brokeninto units that are used to analyze search history for identifying andgenerating trails. Categorization of search queries into units isdiscussed in commonly owned U.S. Pat. No. 7,051,023 issued May 23, 2006,entitled “SYSTEMS AND METHODS FOR GENERATING CONCEPT UNITS FROM SEARCHQUERIES,” which is hereby incorporated by reference.

The trail generator 112 may be a computing device for analyzing andidentifying a trail based on a search query and additional data and/orfactors. The search engine 102, the search log database 108, and/or thetoolbar log database 108 may be coupled with the trail generator 112.The trail generator 112 may receive a user query from the client device102 and/or the search engine 106 and identify a potential trail based onan analysis of that user query.

The trail generator 112 includes a processor 120, memory 118, software116 and an interface 114. The trail generator 112 may be a separatecomponent from the search engine 106, or may be combined as a singlecomponent or device. The interface 114 may communicate with any of theclient device 102, the search engine 106, the search log database 108,and/or the toolbar log database 110. The interface 114 may include auser interface configured to allow a user to interact with any of thecomponents of the trail generator 112. For example, a user may be ableto edit, add or remove items from a trail or update usage statisticsthat are used by the trail generator 112.

The processor 120 in the trail generator 112 may include a centralprocessing unit (CPU), a graphics processing unit (GPU), a digitalsignal processor (DSP) or other type of processing device. The processor120 may be a component in any one of a variety of systems. For example,the processor 120 may be part of a standard personal computer or aworkstation. The processor 120 may be one or more general processors,digital signal processors, application specific integrated circuits,field programmable gate arrays, servers, networks, digital circuits,analog circuits, combinations thereof, or other now known or laterdeveloped devices for analyzing and processing data. The processor 120may operate in conjunction with a software program, such as codegenerated manually (i.e., programmed).

The processor 120 may be coupled with a memory 118, or the memory 118may be a separate component. The interface 114 and/or the software 116may be stored in the memory 118. The memory 118 may include, but is notlimited to computer readable storage media such as various types ofvolatile and non-volatile storage media, including to random accessmemory, read-only memory, programmable read-only memory, electricallyprogrammable read-only memory, electrically erasable read-only memory,flash memory, magnetic tape or disk, optical media and the like. Thememory 118 may include a random access memory for the processor 120.Alternatively, the memory 118 may be separate from the processor 120,such as a cache memory of a processor, the system memory, or othermemory. The memory 118 may be an external storage device or database forstoring recorded image data. Examples include a hard drive, compact disc(“CD”), digital video disc (“DVD”), memory card, memory stick, floppydisc, universal serial bus (“USB”) memory device, or any other deviceoperative to store image data. The memory 118 is operable to storeinstructions executable by the processor 120.

The functions, acts or tasks illustrated in the figures or describedherein may be performed by the programmed processor executing theinstructions stored in the memory 118. The functions, acts or tasks areindependent of the particular type of instruction set, storage media,processor or processing strategy and may be performed by software,hardware, integrated circuits, firm-ware, micro-code and the like,operating alone or in combination. Likewise, processing strategies mayinclude multiprocessing, multitasking, parallel processing and the like.The processor 120 is configured to execute the software 116. Thesoftware 116 may include instructions for analyzing and identifying atrail to display based on a received query.

The interface 114 may be a user input device or a display. The interface114 may include a keyboard, keypad or a cursor control device, such as amouse, or a joystick, touch screen display, remote control or any otherdevice operative to interact with the trail generator 112. The interface114 may include a display coupled with the processor 120 and configuredto display an output from the processor 120. The display may be a liquidcrystal display (LCD), an organic light emitting diode (OLED), a flatpanel display, a solid state display, a cathode ray tube (CRT), aprojector, a printer or other now known or later developed displaydevice for outputting determined information. The display may act as aninterface for the user to see the functioning of the processor 120, oras an interface with the software 116 for providing input parameters. Inparticular, the interface 114 may allow a user to interact with thetrail generator 112 to view or modify the analysis and identification oftrails related to user queries.

Any of the components in system 100 may be coupled with one anotherthrough a network. For example, the trail generator 112 may be coupledwith the search engine 106, search log database 108, or toolbar logdatabase 110 via a network. Any of the components in system 100 mayinclude communication ports configured to connect with a network. Thepresent disclosure contemplates a computer-readable medium that includesinstructions or receives and executes instructions responsive to apropagated signal, so that a device connected to a network cancommunicate voice, video, audio, images or any other data over anetwork. The instructions may be transmitted or received over thenetwork via a communication port or may be a separate component. Thecommunication port may be created in software or may be a physicalconnection in hardware. The communication port may be configured toconnect with a network, external media, display, or any other componentsin system 100, or combinations thereof. The connection with the networkmay be a physical connection, such as a wired Ethernet connection or maybe established wirelessly as discussed below. Likewise, the connectionswith other components of the system 100 may be physical connections ormay be established wirelessly.

The network or networks that may connect any of the components in thesystem 100 to enable communication of data between the devices mayinclude wired networks, wireless networks, or combinations thereof. Thewireless network may be a cellular telephone network, a networkoperating according to a standardized protocol such as IEEE 802.11,802.16, 802.20, published by the Institute of Electrical and ElectronicsEngineers, Inc., or a WiMax network. Further, the network(s) may be apublic network, such as the Internet, a private network, such as anintranet, or combinations thereof, and may utilize a variety ofnetworking protocols now available or later developed including, but notlimited to TCP/IP based networking protocols. The network(s) may includeone or more of a local area network (LAN), a wide area network (WAN), adirect connection such as through a Universal Serial Bus (USB) port, andthe like, and may include the set of interconnected networks that makeup the Internet. The network(s) may include any communication method oremploy any form of machine-readable media for communicating informationfrom one device to another. For example, the search engine 106 mayprovide pages to the client device 102 over a network, such as thenetwork 104.

The search engine 106, the search log database 108, the toolbar logdatabase 110, the trail generator 112 and/or the client device 102 mayrepresent computing devices of various kinds. Such computing devices maygenerally include any device that is configured to perform computationand that is capable of sending and receiving data communications by wayof one or more wired and/or wireless communication interfaces. Suchdevices may be configured to communicate in accordance with any of avariety of network protocols, as discussed above. For example, theclient device 102 may be configured to execute a browser applicationthat employs HTTP to request information, such as a web page, from thesearch engine 106. The present disclosure contemplates acomputer-readable medium that includes instructions or receives andexecutes instructions responsive to a propagated signal, so that anydevice connected to a network can communicate voice, video, audio,images or any other data over a network.

FIG. 3 illustrates an exemplary trail generator. As described withrespect to FIG. 1, the trail generator 112 may receive a search queryand analyze potential browsing trails related to that query and/or thesearch results. Relevant or popular trails may be displayed with thesearch results. The trail generator 112 may include a receiver 302, ananalyzer 304, and an identifier 306. The trail generator 112 or any ofits components may represent computing devices of various kinds. Any ofthe components illustrated in FIG. 3 may be implemented in the software116, stored in the memory 118 and executed by the processor 120 asdescribed in FIG. 1.

The receiver 302 may receive a user query from the search engine 106,which may receive the user query from the client device 102. Thereceiver 302 may also receive information or data that may be used foridentifying a trail. The trail and trail information may be analyzed byan analyzer 304. FIG. 4 illustrates trail identification factors 400that may be received by the receiver 302 and analyzed by the analyzer304. The trail identification factors 400 may be used to generate atrail in response to a received query. In alternate embodiments, more orfewer factors 400 may be used when identifying and generating a trail.

The original user query 402 is a first trail identification factor. Thetrail that is generated may be based at least partially on the originaluser query 402. In addition, the trail may be based on the searchresults of the original user query 402. Search log data 404 from thesearch log database 108 may provide historical search data, as well ashistorical browsing data. Likewise, toolbar log data 406 from thetoolbar log database 110 may provide historical search data and/orhistorical browsing data. The data 404, 406 may be used to identify arelevant trail and may include the other factors 400.

The click through rate (CTR) and/or popularity 408 may be another trailidentification factor. Items or links on a page that are more popularmay be used to establish a trail. For example, search results for aquery may result in users clicking on those results and clicking onlinks or sites from those search results. The more popular destinationsmay be identified as a potential trail for that search query. Thepopularity may be based on clicks measured from the search log data 404and/or the toolbar log data 406.

FIG. 5 is an exemplary search screen 500. The search query is for“IPHONE” and the search results 502 are displayed. As shown, the searchis limited to the domain site techmeme.com, however, the search can beover any domain and does not need to be limited. The trail 504 mayinclude popular links that previous users have clicked on. Those linksmay be linked from the pages of the search results. For example, thefirst trail link 506 is a blog article related to the ZUNE 2 and thesecond trail link 508 is regarding IPHONE EXTREME. Search/toolbar datamay indicate that the first trail link 506 was a popular destination forusers who searched for “IPHONE” and clicked through some of the searchresults. In one example, the first trail link 506 may be a link fromwithin the first search result 510. In other words, users may click toview the first search result 510 and ultimately view a link for thefirst trail link 506 from the first search result 510 page.

Referring back to FIG. 4, relevance 410 is an additional trailidentification factor. The relevance 410 may relate to whether apotential trail is related to the original search query. For example,the search technology that generates the search results may be used todetermine whether the potential trail is related to the query. Therelation may be based on a comparison of the potential trail with thesearch results. The relation may be based on a comparison between thequery and the search results and potential links. The comparison mayinclude considering the title, summary, URL, and description of thesearch results.

Linkability 412 and user intent 414 may be additional trailidentification factors. Linkability 412 may refer to the amount orfrequency that other pages link to a particular site. A site that isfrequently linked to may be a better candidate for a trail than a sitethat is rarely linked to. The user intent 414 may be a measure of what auser or client is searching for with each query. User intent 414 may bedetermined based on the search query and/or the browsing path of theuser after viewing the search results. In addition, user intent 414 maybe based on prior search queries or past search data that identifies acommon goal of a user based on search queries. User intent 414 isfurther described in the commonly assigned patent application entitled“SEGMENTATION OF SEARCH TOPICS IN QUERY LOGS” by Kristina Lisa Klinkner& Rosie Jones, U.S. patent application Ser. No. 11/957,150, now U.S.Pat. No. 7,877,839, filed on Dec. 14, 2007, which describes missions andgoals that may be the user intent 414 and is hereby incorporated byreference.

The demographics 416 may be a consideration for identifying trails. Forexample, the location or sex of a user may be a factor in whichpotential trails are identified. The recency or freshness 418 of a linkmay be considered as well. It may be beneficial to display links in thetrail that are newer or to avoid displaying links to older informationor to sites that have not been updated for some time. Further, a trailmay be displayed adjacent to the individual search results. For example,a potential trail may be displayed under each of the search results inone example.

The query expansion 420 and graph theory 422 may be furtherconsiderations for trail identification. Graph theory 422 may contributean algorithm, such as breadth first search, for efficiently traversingand discovering website links from a starting webpage. Query expansion420 may take the user's query, issues it to the search engine, andreview the text from the web search results to build a representativedocument for that query. Traditional Information Retrieval (IR)algorithms may be used to compute a Term Frequency Inverse DocumentFrequency (TFIDF) weighted bag-of-words term vector from this document.For example, the title, URL, summary, and description of the searchresults may be used to provide the weighted bag-of-words for aparticular search. With this query document, the system may compute theCosine or Jaccard similarity between the query document and a candidateweb document for the trail. This similarity score may represent therelevance of the user's query to a website. Trail selection may maximizethe query relevance and the popularity of web links.

Referring back to FIG. 3, the identifier 306 receives the analyzed trailidentification factors 400. In particular, the identifier 306 may usethe analyzed factors 400 from the analyzer 304 to identify potentialtrail links. As described, the potential trail links may be displayedwith the search results, such as shown in FIG. 5.

FIG. 6 is a process for identifying a trail. In block 602, a query isreceived at the search engine 106 from a user of the client device 102.The query may be transmitted to the receiver 302 of the trail generator112. Trail identification factor information 400 may be gathered for theanalyzer 304 in block 604. The trail identification factors 400 may beanalyzed by the analyzer 304 in block 606. Based on the analysis of thefactors 400, a trail is identified as in block 608. This trail may thenbe displayed with the search results. In block 610, the analysis fromblock 606 may be repeated for the identification of additional trails tobe displayed with the search results. A trail may include one or morelinks that are displayed. In one example, FIG. 5 illustrates a trailwith two links; however, more or fewer links may be displayed.

FIG. 7 is another exemplary search screen 700. The screen 700illustrates a received user query for “yahoo search” in the search querybox 701. As shown, the search is limited to the domain sitetechmeme.com, however, the search can be over any domain and does notneed to be limited. The search results 702 illustrate web links relevantto the query. A first and second identified trail 704, 706 may representpotential future paths for the user. The trails 704, 706 may be linksfrom any of the search results 702 that the user may browse to. Asdescribed above, the identification of trails may be based on ananalysis of factors. In an alternative embodiment, rather thandisplaying multiple trails, a control box may be displayed that mayinclude a forward or reverse button that allows a user to scroll throughpotential links/trails that may be relevant. Accordingly, the user canscroll through or view predicted trails using those functions.

In an overlay model embodiment, trails may appear under individualsearch results. The starting page in the trail may be the search resultlink under which the trail is displayed. Alternatively, trails may alsobe displayed in the Yahoo! Search Assistance layer, which may be adrop-down menu that is displayed under the search box. The SearchAssistance layer may be referred to as a query suggestions box and mayprovide a user with a query suggestion or related terms, as well as thesuggested trail. The search screen 700 displays additional searchrecommendations near an also try 708 portion of the screen 700. The alsotry 708 portion may be replaced with Yahoo! Research Assist, which mayprovide additional recommendations for users. At least part of therecommendations in Research Assist may include potential trails.

In one embodiment, an exemplary fast forward algorithm for identifyingpotential trails will be described. The fast forward algorithm attemptsto predict future browsing locations of a user, such as the trails 704,706 from FIG. 7. The fast forward algorithm may be receive two inputsincluding the original query and a universal resource locator (URL) of astarting page. The starting page may be any of the search result pagesbased on a search for the query, or may be another page associated withthe query. A query expansion may be performed on the query. The queryexpansion may include retrieving the URL's, abstracts, summaries, andtitles from the top results of a web search for the query. A weightedvector may be calculated based on those terms.

Paths may be identified by a function paths=bfs(start_url,branch_factor=10, depth=4, graph_model=path_score, query_model=qe). Thebfs function may refer to breadth first search, which is an algorithmfor traversing graphs level by level. The traversing may be limited to abranch factor of 10 links and a depth of 4. Query_model=qe may refer tothe query expansion of the original query. As one example,

For example, the first 10 links from a search result page may becrawled. For example, if the first link is an image, then on the imagepage the top ten links or results from that page are identified and eachare crawled. Alternatively, more or fewer links may be used as thenumber of search results for a query and the number of links that arecrawled. Crawling a link from the image page may represent a thirdlevel. The exemplary algorithm may crawl through a depth of four levels.The total links that are crawled are 10⁴ links. These pages may havealready been crawled/saved in a table from the web search crawl process.During this traversal, edges of the graph may be collected and scoredwith the bfs algorithm and saved in an adjacency list structure (table).

An exemplary scoring function may be path_score(prev_url, next_url, qe):return pr_visit(prev_url, next_url)+weight*sim(qe, next_url). Pr_visitmay be the probability of clicking next_url from prev_url page. Thisprobability may be determined based on search data, toolbar data, isplogs, or other data. The pr_visit function may use any of the trailidentification factors 400 discussed above for determining trail links.Sim may be a function that takes in the query vector and next_url page(which the function converts into a document vector), and computes theirsimilarity. The similarity may be a measure of how relevant is the queryto the next_url page. The similarity function may compute the cosinedistance (inner product) of the two vectors, and return a score between0 to 1, where 1 is 100% similar or identical. The two vectors passed tothe sim function may correspond to the Term Frequency Inverse DocumentFrequency (TFIDF) weighted bag-of-words query expanded document vector(qe) and the TFIDF weighted bag-of-words web page document vector(next_url). Weight may be a scaling factor following a decay model, withless emphasis on query relevance as the degree of pages (depth)increases. When the user clicks off a web search result and browses tenpages out, that user may no longer be focusing on the query.

A sort function may determine which paths (trails) may be the highestscoring from the exemplary scoring function. The higher scoring pathsmay be used as the links for a fast forward trail that is displayed withthe search results.

FIG. 8 is a process for producing a trail with multiple links. In block802, the trail identification factors 400 may be analyzed foridentifying a first trail link as in block 804. In block 806, theidentified first trail link may be used for a subsequent analysis of thefactors 400 for identifying a second trail link as in block 808. Inparticular, if the second trail link is a subsequent trail from thefirst trail link page as in block 514, then the second trail link may beidentified with the first trail link. In block 516, additional trailsmay be identified in addition to the first and second trail link. Thesecond trail link may be a subsequent page that is reached from thefirst trail link page. Accordingly, the second trail link may be acommon destination from the first trail link. In block 510, theidentified first trail link may be a dead end without any further linksfrom that page, in which case, subsequent trails are identifiedindependent of the identified first trail link as in block 512. In otherwords, the links within a trail may not be related or linked to oneanother. Alternatively, as in block 514, the trail links are linked fromone another. The first trail link may provide a link to the second traillink.

The system and process described may be encoded in a signal bearingmedium, a computer readable medium such as a memory, programmed within adevice such as one or more integrated circuits, and one or moreprocessors or processed by a controller or a computer. If the methodsare performed by software, the software may reside in a memory residentto or interfaced to a storage device, synchronizer, a communicationinterface, or non-volatile or volatile memory in communication with atransmitter. A circuit or electronic device designed to send data toanother location. The memory may include an ordered listing ofexecutable instructions for implementing logical functions. A logicalfunction or any system element described may be implemented throughoptic circuitry, digital circuitry, through source code, through analogcircuitry, through an analog source such as an analog electrical, audio,or video signal or a combination. The software may be embodied in anycomputer-readable or signal-bearing medium, for use by, or in connectionwith an instruction executable system, apparatus, or device. Such asystem may include a computer-based system, a processor-containingsystem, or another system that may selectively fetch instructions froman instruction executable system, apparatus, or device that may alsoexecute instructions.

A “computer-readable medium,” “machine readable medium,”“propagated-signal” medium, and/or “signal-bearing medium” may compriseany device that includes, stores, communicates, propagates, ortransports software for use by or in connection with an instructionexecutable system, apparatus, or device. The machine-readable medium mayselectively be, but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, device,or propagation medium. A non-exhaustive list of examples of amachine-readable medium would include: an electrical connection“electronic” having one or more wires, a portable magnetic or opticaldisk, a volatile memory such as a Random Access Memory “RAM”, aRead-Only Memory “ROM”, an Erasable Programmable Read-Only Memory (EPROMor Flash memory), or an optical fiber. A machine-readable medium mayalso include a tangible medium upon which software is printed, as thesoftware may be electronically stored as an image or in another format(e.g., through an optical scan), then compiled, and/or interpreted orotherwise processed. The processed medium may then be stored in acomputer and/or machine memory.

In an alternative embodiment, dedicated hardware implementations, suchas application specific integrated circuits, programmable logic arraysand other hardware devices, can be constructed to implement one or moreof the methods described herein. Applications that may include theapparatus and systems of various embodiments can broadly include avariety of electronic and computer systems. One or more embodimentsdescribed herein may implement functions using two or more specificinterconnected hardware modules or devices with related control and datasignals that can be communicated between and through the modules, or asportions of an application-specific integrated circuit. Accordingly, thepresent system encompasses software, firmware, and hardwareimplementations.

The illustrations of the embodiments described herein are intended toprovide a general understanding of the structure of the variousembodiments. The illustrations are not intended to serve as a completedescription of all of the elements and features of apparatus and systemsthat utilize the structures or methods described herein. Many otherembodiments may be apparent to those of skill in the art upon reviewingthe disclosure. Other embodiments may be utilized and derived from thedisclosure, such that structural and logical substitutions and changesmay be made without departing from the scope of the disclosure.Additionally, the illustrations are merely representational and may notbe drawn to scale. Certain proportions within the illustrations may beexaggerated, while other proportions may be minimized. Accordingly, thedisclosure and the figures are to be regarded as illustrative ratherthan restrictive.

I claim:
 1. A browsing trail identification system comprising: at leastone non-transitory processor-readable storage medium comprising a set ofinstructions for directing one or more processors to perform browsingtrail identification; and at least one processor, in communication withthe at least one non-transitory processor-readable storage medium,configured to execute the set of instructions to: receive a search queryfrom a user device; identify a first potential browsing destinationbased on the received search query; search a plurality of links based onthe first potential browsing destination, each of the plurality of linksbeing associated with a respective destination; for each destination,obtain a respective probability that the user will view the destinationand a respective similarity between the received search query and thedestination, wherein obtaining the respective similarity comprisescomparing a vector based upon the received search query with a vectorbased upon the destination; based on a path-scoring function thatincorporates the respective probability of each destination with therespective similarity of each destination, select a sequence ofpotential browsing destinations from the plurality of destinations as abrowsing trail, wherein the potential browsing destinations of thesequence are linked with one another from the first potential browsingdestination to an end potential browsing destination through at leastone intermediate potential browsing destination, wherein each of thefirst potential browsing destination and the at least one intermediatepotential browsing destination comprises a link connecting to a nextpotential browsing destination in the sequence; and provide a linkassociated with one of the at least one intermediate potential browsingdestination to the user device for display by the user device inresponse to the received search query.
 2. The browsing trailidentification system of claim 1, wherein each of the end potentialbrowsing destination and the at least one intermediate potentialbrowsing destination comprises a link connecting to a previous potentialbrowsing destination in the sequence.
 3. The browsing trailidentification system of claim 1, wherein at least one of the pluralityof destinations is at least one web page that refers to or identifies atleast one of a product, a service, or an advertisement, and wherein theat least one processor is further configured to determine a result forthe search query as the first potential browsing destination of thesequence.
 4. The browsing trail identification system of claim 1 whereinto search at least one link of the plurality of links, the at least oneprocessor is further configured to: search at least one level down fromthe first potential browsing destination to identify the link, whereinthe at least one level down corresponds with a page that can be reachedfrom a search result from the search query.
 5. The browsing trailidentification system of claim 1, wherein the processor is configured todetermine each probability based on at least one of a location of theuser, gender of the user, recency of update of the respectivedestination associated with the respective link, search history of theuser, or browsing history of the user.
 6. The browsing trailidentification system of claim 1, wherein the at least one processor isfurther configured to perform at least one act of: providing a forwardbutton and a reverse button configured to allow a user to scroll throughthe sequence of potential browsing destinations; or displaying at leastone link of the potential browsing destinations in a drop down menuunder a search box.
 7. The browsing trail identification system of claim1, wherein incorporating the respective probability of each destinationwith the respective similarity of each destination comprises weightingthe respective similarity of each destination and adding the weightedrespective similarity of each destination to the respective probabilityof each destination.
 8. The browsing trail identification system ofclaim 1, wherein selecting the sequence of potential browsingdestinations from the plurality of destinations as the browsing trailcomprises including the path-scoring function in a path-identificationfunction, and the path-identification function further includes at leastone of: a uniform resource locator (URL) of the first potential browsingdestination; a branch factor value specifying a number of links for thebreadth first search function to crawl; a depth value specifying anumber of levels for the breadth first search function to crawl; or aquery expansion of the search query.
 9. A computerized method forbrowsing trail identification, comprising: receiving, by a computer, asearch query from a user device; identifying, by a computer, a firstpotential browsing destination based on the received search query;searching, by a computer, a plurality of links based on the firstpotential browsing destination, each of the plurality of links beingassociated with a respective destination; for each destination,obtaining, by a computer, a respective probability that the user willview the destination and a respective similarity between the receivedsearch query and the destination, wherein obtaining the respectivesimilarity comprises comparing a vector based upon the received searchquery with a vector based upon the destination; based on a path-scoringfunction that incorporates the respective probability of eachdestination with the respective similarity of each destination,selecting, by a computer, a sequence of potential browsing destinationsfrom the plurality of destinations as a browsing trail, wherein thepotential browsing destinations of the sequence are linked with oneanother from the first potential browsing destination to an endpotential browsing destination through at least one intermediatepotential browsing destination, wherein each potential browsingdestination is identified based on the search query and a possibilitythat the potential browsing destination will be selected by the user;and providing, by a processor, a link associated with one of the atleast one intermediate potential browsing destination to the user devicefor display by the user device in response to the received search query.10. The method of claim 9, wherein each of the end potential browsingdestination and the at least one intermediate potential browsingdestination comprises a link connecting to a previous potential browsingdestination in the sequence.
 11. The method of claim 9, wherein the atleast one of the plurality of destinations is at least one web page thatrefers to or identifies at least one of a product, a service, or anadvertisement, and the method further comprising: determining, by aprocessor, a result for the search query as the first potential browsingdestination of the sequence.
 12. The method of claim 9, whereinsearching of at least one link of the plurality of links comprises:searching, by a processor, at least one level down from the firstpotential browsing destination to identify the link, wherein the atleast one level down corresponds with a page that can be reached from asearch result from the search query.
 13. The method of claim 9, whereineach probability is determined based on at least one of a location ofthe user, gender of the user, recency of update of the respectivedestination associated with the respective link, search history of theuser, and browsing history of the user.
 14. The method of claim 9,further comprising at least one of: providing, by a processor, a forwardbutton and a reverse button configured to allow a user to scroll throughthe sequence of potential browsing destinations; or displaying, by aprocessor, at least one link of the potential browsing destinations in adrop down menu under a search box.
 15. The method of claim 9,incorporating the respective probability of each destination with therespective similarity of each destination comprises weighting therespective similarity of each destination and adding the weightedrespective similarity of each destination to the respective probabilityof each destination.
 16. The method of claim 9, wherein selecting thesequence of potential browsing destinations from the plurality ofdestinations as the browsing trail comprises including the path-scoringfunction in a path-identification function, and the path-identificationfunction further includes at least one of: a uniform resource locator(URL) of the first potential browsing destination; a branch factor valuespecifying a number of links for the breadth first search function tocrawl; a depth value specifying a number of levels for the breadth firstsearch function to crawl; or a query expansion of the search query. 17.A non-transitory processor-readable storage medium, comprising a set ofinstructions for browsing trail identification, the set of instructionsconfigured to direct at least one processor to perform acts of:receiving a search query from a user device; identifying a firstpotential browsing destination based on the received search query;searching a plurality of links based on the first potential browsingdestination, each of the plurality of links being associated with arespective destination; for each destination, obtaining a respectiveprobability that the user will view the destination and a respectivesimilarity between the received search query and the destination,wherein obtaining the respective similarity comprises comparing a vectorbased upon the received search query with a vector based upon thedestination; based on a path-scoring function that incorporates therespective probability of each destination with the respectivesimilarity of each destination, selecting a sequence of potentialbrowsing destinations from the plurality of destinations as a browsingtrail, wherein the potential browsing destinations of the sequence arelinked with one another from the first potential browsing destination toan end potential browsing destination through at least one intermediatepotential browsing destination; wherein each of the first potentialbrowsing destination and the at least one intermediate potentialbrowsing destination comprises a link connecting to a next potentialbrowsing destination in the sequence; and providing a link associatedwith one of the at least one intermediate potential browsing destinationto the user device for display by the user device in response to thereceived search query.
 18. The storage medium of claim 17, wherein eachof the end potential browsing destination and the at least oneintermediate potential browsing destination comprises a link connectingto a previous potential browsing destination in the sequence.
 19. Thestorage medium of claim 17, wherein the searching of at least one linkof the plurality of links comprises: searching at least one level downfrom the first potential browsing destination to identify the link,wherein the at least one level down corresponds with a page that can bereached from a search result from the search query.
 20. The storagemedium of claim 17, incorporating the respective probability of eachdestination with the respective similarity of each destination comprisesweighting the respective similarity of each destination and adding theweighted respective similarity of each destination to the respectiveprobability of each destination.